The present invention relates to debugging computer programs and, more specifically, to generating and maintaining breakpoints for use in the debugging process.
As the size of and complexity of software applications has increased, it has become more and more common for large groups of individuals (developers) to split the development of these applications into pieces amongst themselves. An integrated development environment (IDE) is a software application that provides comprehensive facilities to these individuals and allows for all of them to work together during the development process. A typical IDE can include a source code editor, a compiler and/or an interpreter, a builder, and a debugger.
As developers become accustomed to debugging in such environments, the developers are relying more and more on the IDE's source visualization and search features to understand their program while debugging. For example, developers commonly use a Call Hierarchy view to locate all callers of a function, or use a search view to perform a language-aware search to find all modifications of a variable. Once the developer has the results of any particular search, the developer can manually define a debug point for some or all of the results. A debug point defines an action to be taken for an asynchronous debug event. Examples of actions include suspending execution, logging data, running a script, etc. Examples of asynchronous debug events are: execution reaching a desired line of code, program changing an area of memory, the program loading a new module. An example of a debug point is a breakpoint, which suspends execution when a debug event occurs.